Components › Navigation › Section top bar › Section top bar

Section top bar

canon

Composable bar with title, chips, search, dividers and spacer.

Four screens hand-roll the identity instead of SectionTopBarTitle — decision A6. Phone two-step (AD 27 Sep 2026, acrm !3997, fix/nastaveni-mobil-dvoukrok): Nastavení (SettingsLayout.tsx) below the 720px breakpoint drops the side rail and becomes ⌘K's own two-step — `/nastaveni` with no section shows only the grouped menu full-width (`.nastaveni-page.m-menu`), `/nastaveni/<sekce>` shows only that section's `SectionTopBar` (`flat`) and body (`.m-section`) with a quiet `IconButton icon="arrow-left"` (`.set-back`) as the bar's first item, wired to `navigate('/nastaveni')`. Desktop keeps rail + content side by side unchanged. Side rail at ≥720px would take ~260px on a 390px phone and clip every section's fields — the same two-step shape as the ⌘K palette's list→detail step, not a new pattern. acrm !4029 (27 Sep 2026): new app-only layer apps/web/src/ds/section-top-bar.css (home for bar rules; ds.css is over the 100 kB ratchet and must not grow) — a long name in the bar stays on one line with an ellipsis and SectionTopBarTitle carries `title` with the full name; switch labels in the bar do not wrap. acrm !4044 (27 Sep 2026): the record view switcher on person/company (Activities / Profile) is the canonical `.tchip` with chevron (RULES §8: a switcher in the bar = .tchip + menu), the bespoke `.rvsw-*` was deleted. Menu items without description text (acrm !4051). Phone layout, Attio pattern (owner 2026-09-28, acrm !4088): actions as data — primaryAction {label, icon, onClick, kind} → Fab below 720 px (round only for kind 'create'), secondaryActions (menuOnly, danger, phoneOnly) → one ⋮ bottom sheet, closeAction last; row 1 = title + ⋮, row 2 = tools (view picker left, Filtr/Řadit right). Desktop unchanged. PageHeader forwards the same props. 14 Oct 2026 (owner "schvaleno" 24b v4, proto/detail-jednotne@9600c16a2, acrm !5055; RULES §26): record detail header = ↑↓ · name · ⋮ · ✕ with NO blue primary. Rare actions stay in context (Nový obchod in Nejbližší aktivita + Obchody tab; project Aktualizace in its section); an order shows one button only for the step it waits for. Dev check 14 Oct 1440 + 390: person, company, project, order — 0 primaries in the header, the project label chip gone. Registry repaired 17 Oct 2026 (review F5): PageHeader, RecordCloseButton live in apps/web (see files), not exported by @acrm/ui; dropped from react[]. 20 Oct 2026 (ACRM-569, proto/komunikace-menu-zobrazit-vse@0b7180f3a): `SectionTopBarTitle dot` — identity by colour with no glyph (`.pipe-dot`, a 12 px circle inside the `--tile-sm` frame, CSS in apps/web/src/ds/section-top-bar-dot.css); used by a mail label list. Story: "With dot".

Used in 64 files · 56 areas · 118× — components/ListSearch, components/accounting, components/agent-desk, components/datamart, components/segment, pages/AccountingInvoiceDetailPage …

Default

Firmy
Výpis firem
components--section-top-bar--defaultOpen standalone ↗Code

Variants

Reporty
identity = plain icon — a static section (Reporty, Úkoly)
Firmy
identity = colour tile — lists and entities; the tone is the section's colour, not a status
Josef Novák
identity = avatar — a person's record
identity = heading dropdown — switching between pipelines; the menu is a PickerMenu hung on the title
Moje obchody
identity = inline rename — click the name and type; Enter saves, Escape cancels (record detail)
Nastavení
flat — the bar without its bottom hairline, for a host that draws its own separator
Všechny firmy
actions as data — a create primary + secondary actions; on a phone the primary becomes a round Fab and the secondary actions move into ⋮
Receipt-2121-1804.pdf
record detail — menuOnly actions live in ⋮ on every width, danger is red, closeAction stays last; a non-create primary becomes an extended Fab on a phone
components--section-top-bar--variantsOpen standalone ↗Code

States

Sales
chip — quiet by default, tinted while its menu is open (.tchip.open)
Lidé
search — the box is quiet until it is focused; the accent border comes from :focus-within on the wrapper, the input itself has no ring
Bonitní Pražané
saving a rename — the field is not editable again until the save comes back (renaming)
components--section-top-bar--statesOpen standalone ↗Code

With icon & kbd

Sales
every control in the bar is quiet and icon-led: chips carry the field icon, actions are icon + verb, and only the primary action is filled
A shortcut chip belongs on the action that answers to it (here „Nový obchod“ = ⌘N); the bar itself carries no shortcuts.
components--section-top-bar--with-icon-and-kbdOpen standalone ↗Code

Composition

Sales
Výpis obchodů
components--section-top-bar--compositionOpen standalone ↗Code